/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.ts.domain.req;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 *
 *
 * @author wwj
 * @date 2021-4-1
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class UpdateTrainRequest {

    private Long trainId;

    /**
     * 培训名称
     */
    @NotBlank
    private String name;
    /**
     * 培训内容
     */
    @NotBlank
    private String content;
    /**
     * 培训方式：0-自学、1实操、2-试题考核
     */
    @NotNull
    @Max(127)
    private String mode;
    /**
     * 培训类型：0-普通培训，1-文档培训
     */
    @NotNull
    @Max(127)
    private String type;
    /**
     * 考核方式
     assess_method_test_question-试题考核
     assess_method_practical_operation-实操考核
     */
    @NotBlank
    private String assess;
    /**
     * 培训形式
     * train_inside-内部培训
     * train_outside-外部培训
     * train_external-外聘培训
     */
    @NotBlank
    private String trainForm;
    /**
     * 费用类别
     * expense_self-自费
     * expense_public-公费
     * expense_free-免费
     */
    @NotBlank
    private String expenseCategory;
    /**
     * 预估费用
     */
    @NotNull
    private BigDecimal estimatedCost;
    /**
     * 证书名称
     */
    private String certificateName;
    /**
     * 有无证书：0-无证书，1-有证书
     */
    @NotBlank
    private Boolean certificateFlag;
    /**
     * 培训人（讲师）用户Id
     */
    @NotNull
    private Long trainerUserId;
    /**
     * 培训地点
     */
    @NotBlank
    private String trainSite;
    /**
     * 培训开始时间
     */
    @NotNull
    private LocalDateTime startTime;
    /**
     * 培训结束时间
     */
    @NotNull
    private LocalDateTime endTime;

    /**
     * 参与考试人id
     */
    private List<Long> participateUserId;
    /**
     * 参与考试部门id
     */
    private List<Long> participateGroupId;
    /**
     * 文档id
     */
    private List<Long> documentIds;

}
